#ifndef ABMFORMADOR_H_
#define ABMFORMADOR_H_

#include "../Hash/Hash.h"
#include <fstream>
#include <cstring>
#include <vector>

using namespace std;

class ABMFormador {

private:
	Hash * hashFormador;
	string nArchivo;
	unsigned int tamanioBucket;

public:

	/* Crea un hash con el nombre de archivo y el tamanio de bucket
	 * pasados por parametro
	 * */
	ABMFormador(std::string nArchivo, unsigned int tamanioBucket);

	virtual ~ABMFormador();

	/* Si el id no existe, lo da de alta con los valores pasados por parametro y
	 * devuelve true, sino devuelve false
	 * */
	bool alta(unsigned int id, string descripcion);

	/* Si el id existe, modifica con los valores pasados por parametro y
	 * devuelve true, sino devuelve false
	 * */
	bool baja(unsigned int id);

	/* Si el id existe, modifica con los valores pasados por parametro y
	 * devuelve true, sino devuelve false
	 * */
	bool modificacion(unsigned int id, string descripcion);

	/*
	 * Si el id existe, devuelve string con los atributos separados por ;
	 * */
	string buscar(unsigned int id);

	/*
	 * Devuelve un vector con las entidades, <= al maximo id de la entidad, cada
	 * elemento del vector, tiene sus campos separados por ;
	 * */
	vector<string>  listar(unsigned int maxid);


};

#endif
